1. Technical Field of the Invention
The present invention is related to architecture visualization and, more particularly, to architecture visualization during conceptual, development or deployment phases of a system.
2. Description of Related Art
Architecture plays a critical part in the success of any development. Distributed systems are no exception, where architecture plays a key role throughout the lifetime of the system, from concept, to prototype, to partial system during development increments, and even in the complete deployed system. Before implementation of a system begins, it enables a model to be developed, verified and stress tested with use cases scenarios, enabling the design of the system to be fine-tuned up front without incurring the cost of changing code. During system implementation, the architecture provides a reference from which subsystems and services may be developed with confidence that they will integrate and collaborate with the rest of the system when complete. Even during deployment, the architecture plays an important role in guiding system changes and enhancements during its lifetime. Implementations in the form of components and middlewares typically change in any system with a lifespan of longer than a few years, while the architecture of the system lives on.
However, it is often the case that users are not fluent in software architectures and concepts. Furthermore, this effect is compounded by the fact that there is still no one pervasive standard architectural language throughout the software industry. This dilemma effectively reduces the ability of the user to participate in system design, development and maintenance, and limits the extent to which they are able to leverage the benefits of a solid and thorough architecture. This dilemma has far-reaching primary consequences including the following: (1) less participation in early stages of design, leading to late changes and “scope creep”; (2) an incomplete understanding of system complexity causing inaccurate planning; and (3) limited ability to foresee the consequence of system changes leading to reduced flexibility, extensibility, reliability, scalability and increased system downtime.
Secondary effects of this dilemma in a best case scenario involve increased costs and delays, and in a worst case scenario involve project failure. This dilemma presents a challenge for system developers to give users more insight into architectures during all phases of a system, from prototype to deployment.
The crucial role that architecture plays in any complex development cannot be disputed. However, a lack of understanding of architectural concepts, compounded by the lack of a pervasive standard architectural language often limits the realization of the benefits of a solid architecture. As such, visualization is a powerful paradigm that may be used to convey architectural ideas and concepts effectively.
In view of the above, it should be understood that the visualization of architectures facilitates a better understanding of architectures and, consequently, an improved ability to leverage the associated investment and benefits.
Accordingly, it is therefore an object of the present invention to provide a communication tool to help a user of a distributed system to visualize and understand architecture and behavior required to realize business use cases before system implementation begins.
It is also an object of the present invention to provide a diagnostic tool to monitor and verify system behavior as it is being built.
It is a further object of the present invention to provide a management tool for use during deployment to monitor a system.